zz_

gcd.test.js

thoward37@gmail.com/shirt[create-new-file-named-gcd-js-appropriate] / gcd.test.js @ 9a3429bb Download
Ladder Summary
  • file Add Euclidean GCD implementation with comprehensive tests
import { test, describe } from "node:test";
import { strict as assert } from "node:assert";
import { gcd } from "./gcd.js";

describe("gcd function", () => {
    test("positive integers", () => {
        assert.strictEqual(gcd(48, 18), 6);
        assert.strictEqual(gcd(270, 192), 6);
        assert.strictEqual(gcd(100, 25), 25);
    });

    test("zero arguments", () => {
        assert.strictEqual(gcd(0, 0), 0);
        assert.strictEqual(gcd(0, 5), 5);
        assert.strictEqual(gcd(7, 0), 7);
    });

    test("negative numbers", () => {
        assert.strictEqual(gcd(-48, 18), 6);
        assert.strictEqual(gcd(48, -18), 6);
        assert.strictEqual(gcd(-48, -18), 6);
        assert.strictEqual(gcd(-100, 25), 25);
    });

    test("co-prime numbers", () => {
        assert.strictEqual(gcd(13, 17), 1);
        assert.strictEqual(gcd(-13, 17), 1);
    });

    test("same numbers", () => {
        assert.strictEqual(gcd(42, 42), 42);
        assert.strictEqual(gcd(-42, -42), 42);
    });
});